﻿using Sinacor.Infra.Common.Exceptions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.Infra.UI.Common;

namespace Sinacor.UI.Bovespa.Ordens.Communication.Translator.DataContractToModel
{
    public class Ordem
    {
        public ModelCollection<Model.OrdemDistribuidaResultado> ToOrdemDistribuidaResultado(List<Bovespa.Ordens.Ordem.OrdemDistribuidaResultadoResponse> from)
        {
            ModelCollection<Model.OrdemDistribuidaResultado> to = null;

            if (from != null)
            {
                to = new ModelCollection<Model.OrdemDistribuidaResultado>();

                foreach (Bovespa.Ordens.Ordem.OrdemDistribuidaResultadoResponse item in from)
                {
                    to.Add(ToOrdemDistribuidaResultado(item));
                }
            }

            return to;
        }

        private Model.OrdemDistribuidaResultado ToOrdemDistribuidaResultado(Bovespa.Ordens.Ordem.OrdemDistribuidaResultadoResponse from)
        {
            Model.OrdemDistribuidaResultado to = null;

            if (from != null)
            {
                to = new Model.OrdemDistribuidaResultado();

                to.Identificador = from.Identificador;
                to.Sucesso = from.Sucesso;

                to.Erro = new ValidationException();
                
                if (from.Erro != null)
                {
                    to.Erro.ValidationErrors.Add(from.Erro.ErrorNumber, from.Erro);
                }
            }

            return to;
        }
    }
}
